/**
 * 二次封装微信小程序wx.request API
 */

//请求地址基础路径
const BASEURL = "http://47.95.5.129:3000/"
//设置请求的cookie头
const header = {
  'cookie':wx.getStorageSync("cookie")//读取cookie
}
/** 
 * 参数1：请求参数的配置对象，主要包括url, data等。有其他参数需求自己加
 * 参数2：是否将返回结果过滤，将header等一些东西是否过滤，默认为过滤
 */

//用于标识一个页面或者一次逻辑发送请求的次数
let time = 0

export default function request(params, complete=false) {

  //每调用一次递增
  time++
  //请求数据的时候显示加载中
  wx.showLoading({
    title: "加载中~",
    mask: true,
  })
  /**
   * 返回一个promise对象,无论请求发送成功还是失败都
   * 统一用resolve返回，不用捕获错误，看个人习惯吧
   */
  return new Promise((resolve, reject) => {
    wx.request({
      method:"GET",
      header,
      ...params,
      url:`${BASEURL}${params.url}`,
      success: result => {
        if(complete){
          resolve(result)
          return
        }
        resolve(result.data)
      },
      fail: error => resolve(error),
      complete: _ => {
        //当请求完成标识递减
        time--
        //所有请求都已完成，关闭Loading
        if(time === 0){
          wx.hideLoading()
        }
      }
    })
  })
}